package com.foreknow.homework;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 1.随机产生一个10以内的正整数，用户循环输入三个整数，如果用户输入的整数包含随机数，输出“猜对了”；反之，输出“没猜到”。
 *
 * 例如：
 *
 * 随机数为4，用户输入数为：2,3,4。输出：猜对了
 *
 * 随机数为4，用户输入数为：1,2,3。输出：没猜到
 */
public class task3 {
    public static void one(){
        int random = (int) (10 * (Math.random()));
        System.out.println("请输入三个整数");
        int zz=0;
        for(int i = 0;i<3;i++){
            int first = sc.nextInt();
            if(random==first){
                zz++;
            }
        }
        if(zz>0){
            System.out.print("随机数为："+random+"猜对了");
        }if(zz == 0){
            System.out.print("随机数为："+random+"没猜到");
        }
    }
    public static void two(){
        double money;
        System.out.print("请输入当月利润：");
        double ymoney = sc.nextDouble();
        if(ymoney<100000){
            money=ymoney*0.1;
            System.out.println("应发奖金："+money);
        }else if(ymoney>100000&&ymoney<=200000){
            money=100000*0.1+(ymoney-100000)*0.75;
            System.out.println("应发奖金："+money);
        }else if(ymoney>200000&&ymoney<=400000){
            money=100000*0.1+100000*0.75+(ymoney-200000)*0.05;
            System.out.println("应发奖金："+money);
        }else if(ymoney>400000&&ymoney<=600000){
            money=100000*0.1+100000*0.75+20000*0.05+(ymoney-400000)*0.03;
            System.out.println("应发奖金："+money);
        }
        else if(ymoney>600000&&ymoney<=1000000){
            money=100000*0.1+100000*0.75+20000*0.05+200000*0.03+(ymoney-600000)*0.015;
            System.out.println("应发奖金："+money);
        }
        else if(ymoney>1000000){
            money=100000*0.1+100000*0.75+20000*0.05+200000*0.03+400000*0.015+(ymoney-100000)*0.01;
            System.out.println("应发奖金："+money);
        }else{
            System.out.println("请输入正确的利润！！");
        }
    }
    public static void three(){
        System.out.println("请输入一个整数");
        int number = sc.nextInt();
        if(number%2==0){
            System.out.println("是偶数！！");
        }else{
            System.out.println("是奇数！！");
        }
    }
    public static  void four(){
        System.out.print("请输入您的成绩：");
        double grade = sc.nextDouble();
        switch ((int) (grade/10)){
            case 10:
            case 9:
                System.out.println("A级");
                break;
            case 8:
                System.out.println("B级");
                break;
            case 7:
                System.out.println("C级");
                break;
            case 6:
                System.out.println("D级");
                break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
                System.out.println("E级");
                break;
            default:
                System.out.println("输入错误成绩，已退出");
        }
    }
    public static void five(){
        int x = (int) (10 * (Math.random()));
        if(x==1||x==5||x==10){
            System.out.println("x="+x);
        }else{
            System.out.println("x=none");
        }
    }
    public static void six(){
        int x = (int) (100 * (Math.random()));
        if(x%5==0 && x%6==0){
            System.out.println(x);
        }else if (x%5==0 && x%6!=0){
            System.out.println(x);
        }else if(x%5!=0 && x%6==0){
            System.out.println(x);
        }else{
            System.out.println(x);
        }
    }
    public static void seven(){
        System.out.println("请输入年份");
        int year = sc.nextInt();
        if(year%4==0&&year%100!=0||year%400==0){
            System.out.println(year+"是闰年");
        }else{
            System.out.println(year+"不是闰年");
        }
    }
    public static void eight(){
        System.out.println("请输入你的分数");
        double grade = sc.nextDouble();
        if(90<=grade||grade<=100){
            System.out.println("A级");
        }else if(80<=grade||grade<90){
            System.out.println("B级");
        }
        else if(70<=grade||grade<80){
            System.out.println("C级");
        }
        else if(60<=grade||grade<70){
            System.out.println("D级");
        }
        else if(0<=grade||grade<60){
            System.out.println("E级");
        }else{
            System.out.println("你输入的分数无效！！已退出");
        }
    }
    public static void nine(){
        System.out.println("请输入三个整数");
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        int num[] = new int[]{a,b,c};
        Arrays.sort(num);
        for(int item:num){
            System.out.println(item);
        }
    }
    public static void ten(){
        System.out.println("请输入一个不多于五位的整数");
        int num = sc.nextInt();
        if(10000<=num&&num<=99999){
            int a = num/10000%10;
            int b = num/1000%10;
            int c = num/100%10;
            int d = num/10%10;
            int e = num%10;
            System.out.println(num+"是一个5位数");
            System.out.println(a+","+","+b+""+c+","+d+","+e);
        }else if(1000<=num&&num<=9999) {
            int b = num/1000%10;
            int c = num/100%10;
            int d = num/10%10;
            int e = num%10;
            System.out.println(num+"是一个4位数");
            System.out.println(b+","+c+","+d+","+e);
        }else if(100<=num&&num<=999) {
            int c = num/100%10;
            int d = num/10%10;
            int e = num%10;
            System.out.println(num+"是一个3位数");
            System.out.println(c+","+d+","+e);
        }else if(10<=num&&num<=99) {
            int d = num/10%10;
            int e = num%10;
            System.out.println(num+"是一个2位数");
            System.out.println(d+","+e);
        }else if(0<num&&num<=9) {
            int e = num%10;
            System.out.println(num+"是一个1位数");
            System.out.println(e);
        }

        System.out.println();
        }

    public static void eleven(){
        System.out.println("10薪资问题");
        double money = 30000;
        double sum=0;
        for(int i= 0;i<10;i++){
            money=money*0.06+money;
            sum=sum+money;
        }
        System.out.println("10年后年薪"+money+"元");
        System.out.println("10年总薪资："+sum+"元");
    }
    public static void twelve(){
        System.out.println("猴子和桃子的问题");
        int tao=1;
        for(int i =1;i<10;i++){
            tao=(tao+1)*2;
        }
        System.out.print("第一天摘了"+tao);
    }
    public static void thirteen(){
        System.out.print("请输入汇款金额：");
        double money = sc.nextInt();
        double hmoney = 0;
        if(money<100){
            hmoney=1;
        }else if(100<=money&&money<=5000){
            hmoney=money*0.01;
        }else if (5000<money){
            hmoney=50;
        }else{
            System.out.println("输入金额无效，已退出！！");
        }
        System.out.println(hmoney);
    }
    public static void fourteen(){
        System.out.println("三种循环");
        int sum=0;
        for(int i=1;i<101;i++){
            if(i%3==0){
                sum=sum+i;
            }
        }
        System.out.println(sum);
        int sum1=0;
        int i=1;
        while(i<101){
            if(i%3==0){
                sum1=sum1+i;
            }
            i++;
        }
        System.out.println(sum1);
        do {
            if(i%3==0){
                sum=sum+i;
            }
            i++;
        }while (i<101);
        System.out.println(sum);

    }
    public static void fifteen(){
        System.out.println("不包括5");
        for(int i=0;i<10;i++){
            if(i!=5){
                System.out.println(i);
            }
        }
    }
    public static void sixteen(){
        System.out.println("请输入你要计算数字的阶乘");
        int num = sc.nextInt();
        int n=1;
        for(int i = num;i>0;i--){
            n=n*i;
        }
        System.out.println(num+"阶乘是"+n);
    }
    public static void seventeen(){
        System.out.println("质数问题");
        int n = 201,i;
        while(true){
            for(i=2;i<n/2;i++){
                if(n%i==0){
                    break;
                }
            }
            if(i>=n/2){
                System.out.println("大于200的最小的质数为："+ n);
                break;
            }
            n++;
        }
    }
    public static void eighteen(){
        System.out.println("数字反转");
        int num = sc.nextInt();
        int n=num/1000%10;
        int a=num/100%10;
        int b=num/10%10;
        int c=num%10;
        System.out.println(c+""+b+""+a+""+n);
    }
    public static Scanner sc=new Scanner(System.in);
    public static void main(String[] args) {
        System.out.println("1.随机产生一个10以内的正整数，用户循环输入三个整数，如果用户输入的整数包含随机数，输出“猜对了”；反之，输出“没猜到”。\n" +
                "例如：\n" +
                "随机数为4，用户输入数为：2,3,4。输出：猜对了\n" +
                "随机数为4，用户输入数为：1,2,3。输出：没猜到\n" +
                "2、企业发放的奖金根据利润提成。利润低于或等于10万元时，奖金可提10%；利润高于10万元，低于或等于20万元时，高于10万元的部分，可提成7.5%；高于20万，低于或等于40万时，高于20万元的部分，可提成5%；高于40万，低于或等于60万时，高于40万元的部分，可提成3%；高于60万，低于或等于100万时，高于60万元的部分，可提成1.5%，高于100万元时，超过100万元的部分按1%提成，输入一个整数变量为当月利润，求应发放奖金总数？（知识点：条件语句） [必做题]\n" +
                "3、输入一个成绩a，使用switch结构求出a的等级。A：90-100，B：80-89，C：70-79，D：60-69，E：0~59（知识点：条件语句switch）[必做题]\n" +
                "4、输入一个数字，判断是一个奇数还是偶数（知识点：条件语句） [必做题]\n" +
                "5、编写程序， 判断一个随机变量x的值，如果是1，输出x=1，如果是5，输出x=5，如果是 10，输出x=10，除了以上几个值，都输出x=none。（知识点：条件语句） [必做题]\n" +
                "6、判断一个随机整数是否能被5和6同时整除（打印能被5和6整除），或只能被5整除（打印能被5整除），或只能被6整除，（打印能被6整除），不能被5或6整除，（打印不能被5或6整除）（知识点：条件语句） [必做题]\n" +
                "7、输入一个年份，判断这个年份是否是闰年（知识点：条件、循环语句） [必做题]\n" +
                "8、输入一个0～100的分数，如果不是0～100之间，打印分数无效，根据分数等级打印A,B,C,D,E（知识点：条件语句if elseif） [必做题]\n" +
                "9、输入三个整数x,y,z，请把这三个数由小到大输出（知识点：条件语句） [必做题]\n" +
                "10、有一个不多于5位的正整数，求它是几位数，分别打印出每一位数字。（知识点：条件语句） [必做题]\n" +
                "11、假设某员工今年的年薪是30000元，年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪，并统计未来10年（从今年算起）总收入。（知识点：循环语句for）[选做题]\n" +
                "12、猴子第一天摘下若干个桃子，当即吃了一半，还不瘾，又多吃了一个，第二天早上又将剩下的桃子吃掉一半，又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时，见只剩下一个桃子了。求第一天共摘了多少。（知识点：循环语句 while）[选做题]\n" +
                "13、编写一个程序，计算邮局汇款的汇费。如果汇款金额小于100元，汇费为一元，如果金额在100元与5000元之间，按1%收取汇费，如果金额大于5000元，汇费为50元。汇款金额由命令行输入。（知识点：条件语句） [选做题]\n" +
                "14、分别使用for循环，while循环，do循环求1到100之间所有能被3整除的整数的和。（知识点：循环语句） [选做题]\n" +
                "15、输出0-9之间的数，但是不包括5。 [选做题]\n" +
                "16、编写一个程序，求整数n的阶乘，例如5的阶乘是1*2*3*4*5 [选做题]\n" +
                "17、编写一个程序，找出大于200的最小的质数[选做题]\n" +
                "18、由命令行输入一个4位整数，求将该数反转以后的数，如原数为1234，反转后的数位4321 [选做题]\n" +
                " "+"请选择检查第几题："+"\n");
               int num = sc.nextInt();
               switch(num){
                   case 1:
                        one();
                       break;
                   case 2:
                       two();
                       break;
                   case 3:
                       three();
                       break;
                   case 4:
                       four();
                       break;
                   case 5:
                       five();
                       break;
                   case 6:
                       six();
                       break;
                   case 7:
                       seven();
                       break;
                   case 8:
                       eight();
                       break;
                   case 9:
                       nine();
                       break;
                   case 10:
                       ten();
                       break;
                   case 11:
                       eleven();
                       break;
                   case 12:
                       twelve();
                       break;
                   case 13:
                       thirteen();
                       break;
                   case 14:
                       fourteen();
                       break;
                   case 15:
                       fifteen();
                       break;
                   case 16:
                       sixteen();
                       break;
                   case 17:
                       seventeen();
                       break;
                   case 18:
                       eighteen();
                       break;
                   default:
                       System.out.println("输入无效，已退出！！");
                       break;
               }

    }
}
